package com.alex.xmlyfm.adapters;

/**
 * Created by
 * Author: alex
 * Email:
 * Date: 15-10-22.
 */

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.alex.mylibrary.utils.DimensionUtil;
import com.alex.xmlyfm.R;
import com.squareup.picasso.Picasso;

import java.util.List;

/**
 * 海报的 ViewPager
 */
public class PicPagerAdapter extends PagerAdapter {

    private List<String> picDta;
    private Context context;

    public PicPagerAdapter(List picDta,Context context) {
        this.picDta = picDta;
        this.context = context;
    }

    @Override
    public int getCount() {
        int ret = 0;
        if (picDta != null) {
            if (!picDta.isEmpty()){
                ret = Integer.MAX_VALUE;
            }
        }
        return ret;// 使用整形最大值
    }

    /**
     * 根据指定的位置，创建一个对象，这个对象可以View 也可以是管理 View 的对象 例如 Fragment
     * 最终在方法返回之前，一定要将实际的 View 添加到 container 中
     * 并且不要调用 super()
     * @param container
     * @param position
     * @return
     */
    @Override
    public Object instantiateItem(ViewGroup container, int position) {

        // TODO 因为 getCount 返回了整形最大值 实际的数据个数有限
        // 利用 position % 数据个数nn，从而映射成实际数据的索引
        int index = position % picDta.size();

        // TODO 根据 index 获取点击的位置



        ImageView ret = new ImageView(container.getContext());
        ret.setMaxHeight(200);
        ret.setMaxWidth(200);
        if (picDta.size() != 0){
            Picasso.with(context).load(picDta.get(index)).into(ret);
        }else {
            ret.setImageResource(R.mipmap.ic_launcher);
        }

        ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DimensionUtil.dp2px(container.getContext(),120));
        ret.setLayoutParams(lp);
        container.addView(ret);
        return ret;
    }

    /**
     * 销毁对象 从容器删除视图
     * @param container
     * @param position
     * @param object
     */
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View)object);
    }

    /**
     * 判断 view 是否时通过/由 Object 创建出来的，
     * 通常 对于只返回 View 的 PagerAdapter 可以间写成 view == object。
     *
     * @param view ViewPager 内部管理的一个 View
     * @param object 由 instantiateItem() 返回的对象
     * @return 是否相等
     */
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return object==view;
    }
}
